/**
 * http://usejsdoc.org/
 */
var util = require('util');
var Target = require('./target');

function Adapter(){
	Target.call(this);
	
	this.encode = function(){
		var encodeModule = arguments[0] ? arguments[0] : null,//模块名 
			algorithmn = arguments[1] ? arguments[1] : null,//算法类型 sha1、md5、sha256、sha512
			enstring = 	arguments[2] ? arguments[2] : null,	//加密的字符串或者二进制数据流
			returnType = arguments[3] ? arguments[3] : null,//输出返回类型	
			encodeKey = arguments[4] ? arguments[4] : null,//使用私钥
			encodeType = arguments[5] ? arguments[5] : null,//加密编码 binary、ascii和utf8
			AdapteeClass = require('./adaptee_class/'+encodeModule),
			adapteeObj = new AdapteeClass();
			return adapteeObj.encode(algorithmn,enstring,returnType,encodeKey,encodeType);
	};
	
	this.decode = function(){
		var encodeModule = arguments[0] ? arguments[0] : null,//模块名 
			algorithmn = arguments[1] ? arguments[1] : null,//算法类型 sha1、md5、sha256、sha512
			enstring = 	arguments[2] ? arguments[2] : null,	//加密的字符串或者二进制数据流
			returnType = arguments[3] ? arguments[3] : null,//输出返回类型	
			encodeKey = arguments[4] ? arguments[4] : null,//使用私钥
			encodeType = arguments[5] ? arguments[5] : null,//加密编码 binary、ascii和utf8
			AdapteeClass = require('./adaptee_class/'+encodeModule),
			adapteeObj = new AdapteeClass();
			return adapteeObj.decode(algorithmn,enstring,returnType,encodeKey,encodeType);
	};
}

util.inherits(Adapter, Target);

module.exports = Adapter;